import axios from 'axios'
import BaseApi from '@/api/BaseApi'
import config from '@/config'

/**
 * 通信网络节点接口
 */
export default class extends BaseApi {
  /**
   * 获取基础路径
   *
   * @return 基础路径
   */
  static basePath() {
    return (config.services.oen || '') + '/node'
  }

  static getDevicesByRegionId(params) {
    return axios.get(`${this.basePath()}/treeForSegment`, { params })
  }

  // 根据设备id获取所有端口数据
  static getDeviceAllPorts(params) {
    return axios.get(`${this.basePath()}/allPorts`, { params })
  }

  static batchDelete(params) {
    return axios.delete(`${this.basePath()}/delAll`, { data: params })
  }

  // portInfo获取端口信息根据端口id
  static getDevicePortInfo(params) {
    return axios.get(`${this.basePath()}/portInfo`, { params })
  }

  // 根据节点类型获取区域
  static regionInfo(params) {
    return axios.get(`${this.basePath()}/regionInfo`, { params })
  }

  /**
   * 删除数据
   *
   * @param id 编号
   * @return 请求对象
   */
  static delAfs(id) {
    return axios.delete(`${this.basePath()}/delAfs/${id}`)
    // return axios.delete(`${this.basePath()}/del/${id}`, {resultKeep: true});
  }

  static expTpl(params) {
    return axios.get(`${this.basePath()}/expTpl`, {
      params,
      headers: {
        'Content-Type': 'application/json; application/octet-stream'
      },
      responseType: 'blob'
    })
  }
  static importNode(params) {
    return axios.post(`${config.services.oen || ''}/import/importNode`, params, {
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  }

  static expData(params) {
    return axios.get(`${this.basePath()}/expData`, {
      params,
      headers: {
        'Content-Type': 'application/json; application/octet-stream'
      },
      responseType: 'blob'
    })
  }

  // 根据区域查询 可用于组集群的AFS设备节点
  static forCluster(params) {
    return axios.get(`${this.basePath()}/forCluster`, { params })
  }

  static clusterNodeDetail(params) {
    return axios.post(`${this.basePath()}/nodeDetail`, params)
  }

  static changeClusterPortNames(params) {
    return axios.post(`${this.basePath()}/changeClusterPortNames`, params)
  }

  // node/getPortDesc
  static getPortDesc(params) {
    return axios.get(`${this.basePath()}/getPortDesc`, { params })
  }
  // 获取列表
  static queryPage(params) {
    return axios.post(`${this.basePath()}/queryPage`, params)
  }
  // 差量修改端口
  static updatePortInfo(params) {
    return axios.post(`${this.basePath()}/updatePortInfo`, params)
  }
  // 传输设备获取端口列表
  static transPortInfo(params) {
    return axios.get(`${this.basePath()}/transPortInfo`, { params })
  }
  // 获取全部列表
  static queryList(params) {
    return axios.post(`${this.basePath()}/queryList`, params)
  }

  // 通过节点获取端口
  static portList(params) {
    return axios.post(`${config.services.oen || ''}/port/queryList`, params)
  }

  // 接头盒设备端口修改
  static updateBatch(params) {
    return axios.post(`${config.services.oen || ''}/port/updateBatch`, params)
  }

  // 节点 - 类型列表
  static modelList(params) {
    return axios.get(`${this.basePath()}/modelList`, { params })
  }

  // 从AFS获取某节点类型不存在的节点
  static getNotExistsNodeList(params) {
    return axios.get(`${this.basePath()}/getNotExistsNodeList`, { params })
  }

  // 删除节点
  static delByNodeId(params) {
    return axios.delete(`${this.basePath()}/delByNodeId`, { params })
  }

  // 通过节点获取端口
  static portInfo(params) {
    return axios.post(`${config.services.oen || ''}/port/portInfo`, params)
  }

  // 获取权限内的设备列表
  static regionDeviceList(params) {
    return axios.get(`${this.basePath()}/regionDeviceList`, { params })
  }

  static getByRegionIds(params) {
    return axios.get(`${this.basePath()}/getByRegionIds`, { params })
  }

  static getByRoomIds(params) {
    return axios.get(`${this.basePath()}/getByRoomIds`, { params })
  }

  static simplifyList(params) {
    return axios.post(`${this.basePath()}/simplifyList`, params)
  }
  // 更新接头盒端口配置
  static updateSplicePortInfo(params) {
    return axios.post(`${this.basePath()}/updateSplicePortInfo`, params)
  }
}
